package com.example.teesystem.common.utils;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 返回码
 */
@AllArgsConstructor
@Getter
public enum ResultCode {
    OK("成功！", 200),
    WAITING("等待玩家加入",201),
    
    ERROR("出错！", 400),
    PARAMETER_MISS("参数缺失",401),
    HEADER_ERROR("请求头参数错误",402),
    UNKNOWN_EXCEPTION("未知错误", 403),
    NO_PAGE("页面不存在", 404),
    LOGIN_AGAIN("请重新登陆",405),
    TIME_OUT("长时间未操作,身份失效，请重新登陆",406),
    NO_PERMISSION("没有权限",407),
    GET_ERROR("获取信息失败",408),
    PARAMETER_ERROR("参数错误",409),

    VALID_EXCEPTION("参数校验失败", 300),
    ADD_INFO_FAIL("添加失败", 301),
    UPDATE_INFO_FAIL("更新失败", 302),
    GET_INFO_FAIL("查询失败", 303),
    DELETE_INFO_FAIL("删除失败", 304),
    LOG_NOT_EXIST("没有该数据", 305),
    LOG_EXIST("数据已存在", 306),
    FEATURE_ERROR("特征提取失败", 307),
    FEATURE_ISSUE_ERROR("该题目没有音频文件",308),
    
    NO_USER("没有该用户",501),
    ACCOUNT_LOCK("账户被锁定，请联系教师或管理员",502),
    PASSWORD_ERROR("密码错误",503),
    IDENTITY_ERROR("身份校验失败",504),
    TOKEN_EXPIRED_ERROR("身份信息过期",505),
    REQUEST_TIMEOUT_ERROR("请求超时",506),
    INSERT_ERROR("插入数据失败",507),
    USER_EXIST("账户名已存在",508),
    EMAIL_ERROR("邮箱格式错误",509),
    ACCOUNT_ERROR("账户名长度错误",510),
    USER_NAME_ERROR("昵称长度错误",511),
    NAME_ERROR("姓名长度错误",512),
    UPDATE_MESSAGE_ERROR("更新数据失败",513),
    PARAM_CONVERT_FAIL("参数转化失败",514),
    PAPER_TIME_OUT("出卷超时，请重新设置参数",515),
    IDENTITY_ERROR_LOGIN_AGAIN("身份校验失败,请重新登陆",516),
    USER_TYPE_NOT_STUDENT_ERROR("所查用户并非学生", 517),

    FILE_UPLOAD_ERROR("文件上传失败",601),
    FILE_DOWNLOAD_ERROR("文件下载失败",602),
    FILE_EMPTY("文件为空",603),
    FILE_IMPORT_FAILURE("文件导入失败",604),
    NOT_EXCEL("不是excel文件",605),
    FILE_COPY_FAILURE("文件拷贝失败", 606),
    File_OUTPUT_FAILURE("文件导出失败",607),
    ISSUE_DELETE_ERROR("题目已使用，不能删除", 608),
    ISSUE_NOT_EXIST_ERROR("题目不存在", 609),
    DATA_FORMAT_ERROR("数据格式化失败", 610),

    WRONG_SET_ID_ERROR("不存在该错题", 611),

    EXAM_NOT_PUBLISH_ERROR("试卷尚未发布", 612),
    EXAM_NOT_STARTED_ERROR("考试尚未开始,请稍等", 613),
    EXAM_NOT_FINISH_ERROR("考试尚未结束", 614),
    EXAM_TIMEOUT_ERROR("考试已结束", 615),
    DATE_FORMAT_ERROR("日期解析错误", 616),
    EXAM_PAPER_IS_PUBLISHED("试卷已发布，请撤销后修改", 617),
    EXAM_PAPER_IS_FINISHED("试卷已完成，禁止修改", 618),
    EXAM_PAPER_IS_MARKED("试卷已阅，禁止修改", 619),
    EXAM_ISSUE_NOT_EXIST_ERROR("试题不存在", 620),
    CLASS_STUDENT_NULL_ERROR("该班级没有学生", 621),
    CLASS_EXAM_NOT_EXIST("该班级不存在该考试", 622),
    EXAM_NOT_FINISH_MARK_ERROR("试卷尚未完成阅卷", 623),
    EXAM_EXIST_ERROR("试卷不存在", 624),
    EXAM_PAPER_PUBLISHED_ERROR("试卷已发布，请先撤回", 625),
    TIME_OUT_OF_RANGE("当前时间不在考试时间段", 626),
    NO_EXAM_RECORD_ERROR("没有答题记录，请尽快答题", 627),
    EXAM_ISSUE_NOT_COMPLETE_ERROR("上传数据不完整", 628),
    EXAM_NOT_HAVE_ISSUE_ERROR("试卷没有题目",629),
    STUDENT_NOT_ANSWER_ERROR("学生未进行答题", 630),
    NOT_HAVE_ISSUE_RECORD_ERROR("没有答题记录，无法获取数据", 631),
    PAPER_NOT_EXAM_ERROR("试卷未考试，无法获取数据", 632),
    NO_ISSUE_ERROR("没有题目，无法获取数据", 633),
    COURSE_NO_CHAPTER_ERROR("课程为划分章节", 634),
    STUDENT_NO_CLASS_ERROR("学生尚未加入任何班级", 635),
    COURSE_NO_ISSUE_ERROR("课程没有题目", 636),
    COURSE_NOT_EXIST_ERROR("课程不存在", 637),
    CHAPTER_NOT_IN_COURSE_ERROR("该课程中没有该章节", 638),
    FILE_ERROR("文件格式错误", 639),
    EXAM_CLASS_ERROR("存在班级不满足试卷发布条件", 640),
    EXIST_NO_SCORE_ISSUE("存在没有给分的题目", 641),
    STUDENT_NOT_MARK_ERROR("存在以下学生未阅，请阅完后再发布",642),
    USER_TYPE_ERROR("用户身份错误",643),

    CLASS_STUDENT("学生已存在",644),
    EXAM_NOTMARK("试卷中存在题目未批阅",645),

    ASSISTANT_EXIST_ERROR("助教已存在", 701),
    ASSISTANT_ADD_ERROR("助教添加失败", 702),
    ASSISTANT_REMOVE_ERROR("助教移除失败", 703),
    ASSISTANT_CHECK_ERROR("助教查看失败", 704),
    ASSISTANT_UPDATE_ERROR("助教更新失败", 705),
    ASSISTANT_NOT_EXIST_ERROR("助教不存在", 706),
    ASSISTANT_PERMISSION_ERROR("权限不足", 707),
    ASSISTANT_COUNT_LIMIT_ERROR("助教数量已达上限", 708),
    ASSISTANT_ADD_SELF_ERROR("无法添加自己为助教", 709),
    ASSISTANT_NAME_ID_NOT_MATCH_ERROR("助教姓名和ID不匹配", 710),
    ASSISTANT_ACCOUNT_NOT_EXIST_ERROR("该助教账户不存在", 711),

    COURSE_DATA_REMOVE_PERMISSION_ERROR("没有删除权限", 801),
    COURSE_DATA_UPLOAD_PERMISSION_ERROR("没有上传权限", 802),
    COURSE_DATA_PRIVATE_PERMISSION_ERROR("查看权限错误", 803),
    COURSE_DATA_PRIVATE_PERMISSION_FAIL_ERROR("没有权限查看该课程私密资料", 804),
    COURSE_DATA_UPDATE_PERMISSION_ERROR("没有资格更改该资料", 805),
    COURSE_DATA_NOT_FOUND_ERROR("该资料不存在", 806),
    COURSE_DATA_UPDATE_ERROR("资料更新失败", 807),
    COURSE_DATA_DELETE_ERROR("资料删除失败", 808),
    FIRST_NODE_EXIST("章节首节点存在",809),
    WARNING_NODE("注意节点线性顺序",810),
    NODE_NOT_DELETE("其有子节点不能删除",811),
    PRE_NODE_NOT_EXIST("前置子节点不存在",812),
    FIRST_NODE_NOT_UPDATE("首节点不允许更新公开状态",813),
    ANSWER_PRE("请先完成前置节点",814),
    SEARCH_FAIL("匹配失败",815),
    GAME_OVER("游戏已结束",816),
    GAME_WAITING("等待游戏结算",816),
    
    COURSE_ADD_IMG_FAIL("添加课程图片失败", 901),
    
    KNOWLEDGE_CHAPTER_NOT_SAME("课程知识点的章节 id 与父知识点的章节 id 不一样", 1001),
    PARENT_KNOWLEDGE_NOT_EXIST("父知识点不存在", 1002),

    PAPER_FEEDBACK_URL_ERROR("上传的URL地址错误", 1101),
    PAPER_FEEDBACK_STUDENT_ERROR("上传者未使用过本试卷", 1102),
    PAPER_FEEDBACK_IMAGE_FILE_ERROR("文件格式错误", 1103),
    PAPER_FEEDBACK_NOT_FOUND_ERROR("未找到改记录", 1104),
    PAPER_FEEDBACK_PARAMETER_ERROR("反馈参数错误", 1105),
    PAPER_FEEDBACK_PARAMETER_MISS_ERROR("反馈参数缺失", 1106),

    LOG_PARAMETER_CONTENT_ERROR("日志参数错误", 1200)
    ;

    private final String msg;
    private final Integer code;

}
